"""
    Python中读取Excel的方式常见的有下面三种
    1.使用 xlrd和xlwt来进行Excel读写
    2.使用 openpyxl  来进行Excel读写
    3.使用 pandas    来进行Excel读写
    
    这里使用xlrd来进行Excel的读取操作
    
    1.安装第三方模块
        通过指令pip来进行安装 pip python包管理器
    2. 修改本地的pip数据源
        2.1 在运行窗口输入 %APPDATA%
        2.2 新建文件夹 pip
        2.3 在pip文件夹下创建文件pip.ini
        2.4 把下面内容复制到pip.ini中
            [global]
            index-url = https://pypi.tuna.tsinghua.edu.cn/simple
            [install]
            trusted-host = pypi.tuna.tsinghua.edu.cn
    3.实际安装第三方模块(xlrd模块)
        安装指令:pip install xlrd
        
        E:\WN15\Python\Code\Day8>pip install xlrd
        Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
        Collecting xlrd
          Downloading https://pypi.tuna.tsinghua.edu.cn/packages/b0/16/63576a1a001752e34bf8ea62e367997530dc553b689356b9879339cf45a4/xlrd-1
        .2.0-py2.py3-none-any.whl (103kB)
            100% |████████████████████████████████| 112kB 1.1MB/s
        Installing collected packages: xlrd
        Successfully installed xlrd-1.2.0
        You are using pip version 19.0.3, however version 19.3.1 is available.
        You should consider upgrading via the 'python -m pip install --upgrade pip' command.

        E:\WN15\Python\Code\Day8>
        
        
        
        如果pip版本过低使用下面指令更新pip
        E:\WN15\Python\Code\Day8>python -m pip install --upgrade pip
        Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
        Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPS
        ConnectionPool(host='pypi.tuna.tsinghua.edu.cn', port=443): Read timed out. (read timeout=15)")': /simple/pip/
        Collecting pip
          Downloading https://pypi.tuna.tsinghua.edu.cn/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19
        .3.1-py2.py3-none-any.whl (1.4MB)
            100% |████████████████████████████████| 1.4MB 2.1MB/s
        Installing collected packages: pip
          Found existing installation: pip 19.0.3
            Uninstalling pip-19.0.3:
              Successfully uninstalled pip-19.0.3
        Successfully installed pip-19.3.1

        E:\WN15\Python\Code\Day8>

"""

import xlrd

# 1.打开文件
# 绝对路径的写法:
# xl = xlrd.open_workbook(r"C:\Users\Administrator\Desktop\wn15.xlsx")
# 相对路径
xl = xlrd.open_workbook("wn15.xlsx")

# 2.获取所有sheet的名称
snames = xl.sheet_names()
print(type(snames)) # <class 'list'>
for name in snames:
    print(name)
    
# 3.获取一共有多少个Sheet
print(xl.nsheets)

# 4.获取每一个sheet对象
ss = xl.sheets()
print(type(ss)) # <class 'list'>

# 5.可以根据下标或者名称来获取指定的sheet
sheet = xl.sheet_by_name("Sheet1")
print(type(sheet)) # <class 'xlrd.sheet.Sheet'>

# 下标从0开始 即Sheet1 的index 是0 
sheet = xl.sheet_by_index(0)
print(type(sheet))

# 6.获取Sheet的详细信息: 名称总行数总列数(总行数和总列数指的是有内容的行和列.)

print(sheet.name)
print(sheet.nrows)
print(sheet.ncols)

# 获取单元格的内容  row(index)会同时输出单元格值类型和内容 number表示是数值类型 text表示是文本类型
print(sheet.row(1)) # row(index)获取index所代表行的数据 [number:1.0, text:'张三', number:123.0, number:1000.0]
print(type(sheet.row(1))) # <class 'list'> 得到的是一个列表.Excel中有几列数据.那列表就有几个元素

# 只获取数值
print(sheet.row_values(1))
# 只获取数据类型 0空 1字符串 2数字 3日期 4布尔 5error
print(sheet.row_types(1))


# 更详细的获取数据
"""
      A       B       C       D
  1: 编号	用户名	密码	余额
  2:  1	    张三	123	    1000
  3:  2	    李四	123	    1000
  4:  3	    王五	123	    1000

"""
print(sheet.row_values(1,1,3)) # 取第二行 第2列和第三列的值  row_values(行下标,列起始下标,列终止下标) [起始,终止)

# 取张三李四王五
print(sheet.col_values(1,1,4)) # col_values 取列的数据
# 效果同row(index)
print(sheet.row_slice(0,0,2))



# 直接获取特定的单元格的数据  cell 单元格的意思
print(sheet.cell(0,0))
print(sheet.cell(3,1)) # cell(行,列)
print(sheet.cell(3,1).value) # cell(行,列)
print(sheet.cell_value(3,1)) # cell(行,列)
print(sheet.row(3)[1].value) # cell(行,列)






